Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота №5

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Засоби системного програмування
Група:
КІ

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ ЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ / Лабораторна робота №5 з курсу ”Засоби системного програмування” Дослідження роботи команд переходів. Програмування задач з використанням алгоритмів розгалуження. Львів – 2012 Дослідження роботи команд переходів. Програмування задач з використанням алгоритмів розгалуження. Мета: освоїти використання команд порівняння, умовного та безумовного переходів. Набути вміння використовувати арифметичні команди над знаковими даними та команди логічних операцій. Завдання: 12    Лістинг програми DOSSEG .MODEL SMALL .STACK 100h .DATA A db 4 B db 5 X dw 0 Hello db 13,10,' X=(2+b)/a if a>b',13,10,' X=-2 if a==b',13,10,' X=(a-5)/2*b if a<b',13,10,'$' A_B db 13,10, ' a==b ====> X=-2',13,10,'$' Error_A db 13,10,' a<b and a==0 ----> divide by zero',13,10,'$' Error_B db 13,10,' a>b and b==0 ----> divide by zero',13,10,'$' .CODE mov ax,@data ;Перевизначення сегментного регістру ds mov ds,ax mov ah,09 ;Вивід текстового повідомлення про умову задачі mov dx,offset hello int 21h mov al,B ;занести значення з комірки пам’яті, визначеної міткою B, у регістр al cmp al,A ;порівняти значення регістру al та комірки пам’яті A jne A_g_B ;за умови, що вони нерівні, перейти на мітку A_g_B mov X,-2 ;інакше – занести значення константи -2 у пам’ять, визначену як X mov ah,09 ;вивести повідомлення, про рівність вхідних даних і значення результату mov dx,offset A_B int 21h jmp exit ;перейти на мітку exit A_g_b: jg A_n_B ;якщо вміст al > A, то перейти на мітку A_n_B cmp A,0 ;інакше – порівняти значення A з нулем je exit_A ;якщо вони рівні, тобто можливе ділення на нуль, перейти на мітку exit_A mov ah,80h ;занести у регістр ah константу 80h and ah,al ;виділити в регістрі ah знаковий розряд значення, занесеного у регістр al sar ah,8 ;розповсюдити знаковий розряд в регістрі ah mov dl,ah ;перенести знаковий розряд в регістр dl mov dh,dl ;перенести знаковий розряд в регістр dh mov bl,B ;занести у регістр bl значення з комірки пам’яті, визначеної міткою В mov bh,80h ;занести у регістр bh константу 80h and bh,bl ;виділити в регістрі bh знаковий розряд значення, занесеного у регістр bl sar bh,8 ;розповсюдити знаковий розряд в регістрі bh add ax,2 idiv bx ;поділити знакове число, що знаходиться у регістровій парі dx:ax на знакове число ;у регістрі bx mov X,ax ;перенести отриманий результат у комірку Х jmp exit ;перейти на мітку exit exit_A: mov ah,09 ;вивести повідомлення про ділення на нуль, при A==0 mov dx,offset Error_A int 21h jmp exit ;перейти на мітку exit A_n_B: cmp B,0 ;порівняти значення В з нулем je exit_B ;якщо вони рівні, тобто можливе ділення на нуль, перейти на мітку exit_B mov al,A ;занесети значення з комірки пам’яті, визначеної міткою A, у регістр al mov ah,80h ;занести у регістр ah константу 80h and ah,al ;виділити в регістрі ah знаковий розряд значення, занесеного у регістр al sar ah,8 ;розповсюдити знаковий розряд в регістрі ah sub ax,5 ;ax=a-5 ;відняти число 5 від значення у регістрі ах mov dx,8000h ;занести у регістр dh константу 8000h and dx,ax ;виділити в регістрі dx знаковий розряд значення, занесеного у регістр ax sar dx,15 ;розповсюдити знаковий розряд в регістрі dx mov bl,A ;занести у регістр bl значення з комірки пам’яті, визначеної міткою А mov bh,80h ;занести у регістр bh константу 80h and bh,bl ;виділити в регістрі bh знаковий розряд значення, занесеного у регістр bl sar bh,8 idiv bx ;поділити знакове число, що знаходиться у регістровій парі dx:ax на знакове число mov bx,2 ;у регістрі bx imul bx mov X,ax ;перенести отриманий результат у комірку Х jmp exit ;перейти на мітку exit exit_B: mov ah,09 ;вивести повідомлення про ділення на нуль, при А==0 mov dx,offset Error_B int 21h exit: mov ah,4Ch ;завершення програми int 21h end Дамп пам’яті відображено на рис.1, Рис.1. Вмістиме дампу пам’яті / Скріншот роб...
Антиботан аватар за замовчуванням

27.10.2012 20:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини